from django.shortcuts import render
from rest_framework.generics import ListAPIView           #ListAPIView作用是显示列表数据
from .models import Banner,Nav
from .serializers import BannerSerializer,NavSerializer
from skylark_api.settings import constans
'''
功能：获取显示的轮播图列表
实现思路：
1指定过滤条件，必须是is_show=True, is_delete=False
2排序：-orders降序，-idid从小到大是升序，从大到小时江都
3数量限制：固定显示5张
'''

class BannerView(ListAPIView):
    # 指定过滤条件
    #Banner.objects.filter的作用是获取Banner模型中is_show=True, is_delete=False的对象
    #order_by('-orders','-id')的作用是按照orders字段倒序，id字段倒序排序
    #[:5]的作用是限制返回的数量为5
    queryset =Banner.objects.filter(is_show=True,is_delete=False).order_by('-orders','-id')[:constans.BANNER_LENGTH]
    # 指定序列化器
    serializer_class=BannerSerializer

class NavListView(ListAPIView):
    #顶部导航列表
    queryset = Nav.objects.filter(is_show=True, is_deleted=False, position=1).order_by('-orders')
    serializer_class = NavSerializer


class NavFooterView(ListAPIView):
    queryset = Nav.objects.filter(is_show=True, is_deleted=False, position=2).order_by('-orders')
    serializer_class = NavSerializer

